package com.jessechanrui.template.shardingsphere.validated.dto;

import lombok.experimental.Delegate;

import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;

/**
 * @author chenrui
 * @date 2024/2/29
 */
public class ValidationList<E> implements List<E> {

    /**
     *  其中@Delegate注解受lombok版本限制，1.18.6以上版本可支持。如果校验不通过，会抛出NotReadablePropertyException，同样可以使用统一异常进行处理。
     *  该注解作用：放置任何字段以使 lombok 生成将调用转发到该字段的委托方法。
     *  另外一定要加@Valid注解
     */
    @Delegate
    @Valid
    public List<E> list = new ArrayList<>();

    /**  一定要记得重写toString方法 */
    @Override
    public String toString() {
        return list.toString();
    }
}

